const cluster = require('cluster');
const http = require('http');
const cpus = require('os').cpus().length;

//根据cpu的核数 几核创建几个进程
//进程之间也可以通信 通过process.send() ipc的方式通信，默认不支持管道的方式（流的方式）
if (cluster.isMaster) {
  cluster.setupMaster({
    stdio:'pipe' //设置整个选项后 进程间通信 就支持管道了(流)
  });
  for(let i = 0;i<cpus;++i) {
    cluster.fork();
  }
} else {
  http.createServer((req, res) => {
    res.end(`hi,i'm：${process.pid}`); //pid不是parentId 而是 processId 的意思(打开资源管理器 可查看pid)
  }).listen(3000); // 所有子进程都会监听3000端口(cluster帮我们处理好了)
}

//其实也可以让子父进程各自在一个独立的文件里 参考03/
